package com.usermanage.Service;

import com.usermanage.beanParam.PermissionBean;
import com.usermanage.util.JsonData;

import java.util.List;
import java.util.Optional;

/**
 * Created by  on 2018/9/3
 */
public interface PermissionService {

    /**
     * 当pid不为空时根据组id得到组下的子树列表用于首页左边菜单栏    当id为空时查出所有权限树列表
     * @param groupId
     * @return
     */
    List<PermissionBean> findPermissionByGroupId(String groupId);

    /**
     * 当pid不为空时根据组id得到组下的子树列表用于首页左边菜单栏    当id为空时查出所有权限树列表
     * @param groupIds
     * @return
     */
    List<PermissionBean> findPermissionNewByGroupId(String groupIds);


    /**
     * 根据id得到权限列表，非树行的。
     * @param groupId
     * @return
     */
    List<PermissionBean> findPermissionByGroupIdNotTree(String groupId);
    /**
     * 根据组id得到末级权限列表id字符串，用于以有权限默认选中
     * @param groupId
     * @return
     */
    String findPermissionEndListByGroupId(String groupId);
    /**
     * 根据groupId得到组下所有权限集合
     * @param groupId
     * @return
     */
    List<PermissionBean> findAllPermissionByGroupId(String groupId);


    /**
     *根据父级id查权限集合
     * @param parentId
     * @return
     */
    List<PermissionBean> findPermissionByParentId(String parentId);

    /**
     * 验证权限是否存在
     * @param name
     * @param url
     * @param parentId
     * @return
     */
    boolean isExist(String name,String url,String parentId);

    /**
     * 根据id查询权限详情
     * @param id
     * @return
     */
    Optional findById(int id);

    /**
     * 保存一个权限
     * @param bean
     * @return
     */
    PermissionBean save(PermissionBean bean);
}
